An artificial neural network utilizes a network of neurons to perform complex cognitive tasks. For example, tasks related to computer vision and speech recognition, which are very difficult to perform using the ordinary rule-based programming, can be performed using an artificial neural network.
The neurons of an artificial neural network may be configured to communicate with each other through synaptic connections between the neurons. Each synaptic connection between two neurons may be associated with a weight having a value which may be tuned to reflect the importance of communication between the two neurons. As an artificial neural network grows in size, the number of synaptic connections increases, resulting in a corresponding increase in the number of weights. However, since weight values are generally stored in memory, growth in the size of an artificial neural network can become problematic as the memory requirement for the weight values exceeds the available memory, resulting in the use of relatively slower storage as “virtual memory” which may dramatically slow the performance of the artificial neural network.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some embodiments described herein may be practiced.